package com.his.system.manager.base;

/**
 * 公共枚举类
 * 200 请求成功
 * 500 服务器内部错误
 * -1   hystrix熔断返回码
 * 401  未登录
 * 403 权限不足
 *
 * @Description
 * @Author Admin
 * @Date 2020-06-14 17:55:34
 */
public enum ResponseCode {
    /**
     * 公共枚举类
     */
    SUCCESS(200, "请求成功!"),
    ERROR(500, "系统繁忙,请稍后再试!"),
    HYSTRIX_FAST_FAIL(-1, "内部服务请求超时!"),
    UNAUTHORIZED(401, "尚未登录!"),
    FORBIDDEN(403, "权限不足!"),
    HYSTRIX_FAIL(408, "系统繁忙,请稍后再试!"),
    INVALID_PARAM(1001, "参数不合法!"),
    DATA_NOT_FOUND(1002, "数据不存在!"),
    OPERATION_ERROR(1003, "操作有误!");
    private Integer code;

    private String message;

    ResponseCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    /**
     * 校验枚举值是否是已定义的
     *
     * @param code
     * @return
     */
    public static boolean isValid(Integer code) {
        if (null != code) {
            for (ResponseCode re : values()) {
                if (re.code.equals(code)) {
                    return true;
                }
            }
        }
        return false;
    }

}
